- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин
Шрифт:
Интервал:
Закладка:
Элементы контекстного меню ContextMenu представлены классом MenuItem и составляют набор ObservableList, заполнить который можно с помощью метода getItems.addAll класса ContextMenu.
С элементами MenuItem мы уже познакомились при обсуждении панели MenuBar.
Контекстное меню прикрепляется к элементу управления методом setContextMenu.
Отдельно отобразить контекстное меню можно методом show, а скрыть его методом hide.
В этом примере мы создаем контекстное меню с элементом Remove и прикрепляем его к дереву.
При нажатии правой кнопкой мышки на дереве появляется контекстное меню.
При активации элемента Remove выделенный узел дерева удаляется.
MenuButton и SplitMenuButton
Компонент MenuButton представляет кнопку, при нажатии на которую появляется меню.
Отличие набора свойств компонента MenuButton от набора свойств компонента Button заключается в наличии свойств popupSide и showing.
Свойство popupSide определяет расположение меню относительно кнопки, а свойство showing принимает значение true при отображении меню.
При создании компонента MenuButton требуется создание меню, являющегося неотъемлемой частью компонента.
При этом меню состоит из набора компонентов, представленных классом MenuItem, пополнять который можно с помощью метода getItems.addAll класса MenuButton.
Экземпляр класса MenuItem можно создать с помощью конструктора, в котором можно указать текст и значок.
С классом MenuItem мы уже познакомились при обсуждении панели MenuBar.
В этом примере мы создаем кнопку с помощью конструктора, в котором можно указать надпись кнопки и значок.
С помощью метода setPopupSide мы определяем, что меню будет располагаться справа.
Далее мы создаем элементы меню MenuItem, к которым присоединяем обработчик выбора, используя метод setOnAction.
И добавляем элементы меню к кнопке методом getItems.addAll.
Компонент SplitMenuButton представляет кнопку, разделенную на две части, одна из которых представляет обычную кнопку, а при нажатии на другую появляется меню.
Компонент SplitMenuButton по своей функциональности аналогичен компоненту MenuButton, так как класс SplitMenuButton является расширением класса MenuButton.
Отличие состоит в том, что компонент SplitMenuButton состоит из двух частей, одна из которых может работать как обычная кнопка, и для которой можно определить отдельный обработчик событий onAction, а другая часть выполняет основную функцию компонента MenuButton, т.е. открывает контекстное меню.
Меню компонента SplitMenuButton состоит из набора компонентов, представленных классом MenuItem, пополнять который можно с помощью метода getItems.addAll класса MenuButton.
В этом примере мы создаем кнопку с помощью конструктора, в котором, в отличие от кнопки MenuButton нельзя указать надпись кнопки и значок.
Для этого нужно использовать отдельные методы setText и setGraphic.
С помощью метода setPopupSide мы определяем, что меню будет располагаться снизу кнопки.
К кнопке мы присоединяем обработчик нажатия с помощью метода setOnAction.
Далее мы создаем элементы меню MenuItem, к которым присоединяем обработчик выбора, используя метод setOnAction.
И добавляем элементы меню к кнопке методом getItems.addAll.
ColorPicker
Элемент управления цветом ColorPicker позволяет пользователям выбрать определенный цвет из имеющегося диапазона или установить дополнительный цвет.
Компонент ColorPicker состоит из компонента выбора цвета, компонента цветовой палитры и настраиваемого диалогового окна цветов.
Компонент выбора цвета представляет собой поле со списком цветов для выбора цвета.
Реализация этого компонента позволяет три вида компонента выбора цвета: кнопка, разделенная кнопка с меню и поле со списком по умолчанию.
Чтобы изменить поле со списком на кнопку или разделенную кнопку, нужно применить соответствующий CSS класс с помощью метода getStyleClass.add.
Компонент цветовая палитра содержит предопределенный набор цветов и ссылку «Пользовательский цвет», которая открывает диалоговое окно «Пользовательский цвет».
Если пользовательский цвет уже определен, этот цвет отображается в области «Пользовательский цвет» в цветовой палитре.
Цветовая палитра поддерживает навигацию с помощью клавиш «Вверх», «Вниз», «Влево» и «Вправо».
Набор пользовательских цветов не перезагружается, когда приложение запускается снова, если этот набор явно не сохраняется в приложении.
Диалоговое окно «Пользовательский цвет» – это модальное окно, которое можно открыть, щелкнув ссылку в цветовой палитре.
Когда открывается окно «Пользовательский цвет», оно отображает значение цвета, который в настоящее время отображается в поле со списком.
Пользователь может определить новый цвет, перемещая курсор мыши по области цвета или по вертикальной цветной панели.
Другой способ определить новый цвет – установить значения яркости HSB или RGB, или явно ввести значение цвета в соответствующем поле.
Пользователь также может установить прозрачность пользовательского цвета.
Когда новый цвет выбран, пользователь может нажать «Использовать», чтобы применить его, или «Сохранить», чтобы сохранить цвет.
В этом примере мы создаем компонент ColorPicker с помощью конструктора, в которм сразу можно указать выбранный цвет.
С помощью метода setOnAction мы присоединяем к ColorPicker обработчик выбора цвета, в котором получаем выбранный пользователем цвет и используем его.
DatePicker
Компонент DatePicker – это элемент управления, который позволяет выбирать день из календаря.
Этот компонент используется в приложениях, которые требуют, чтобы пользователи вводили дату.
Компонент DatePicker состоит из поля даты и списка выбора даты.
Программный интерфейс Date-Time, введенный в JDK 8, позволяет выполнять различные операции с датой и временем, включая настройку календарного и местного времени для разных часовых поясов.
Основным пакетом программного интерфейса Date-Time является пакет java. time.
Чтобы улучшить пользовательский интерфейс JavaFX с возможностями API Date-Time, в JavaFX SDK был введен элемент управления DatePicker, который состоит из редактируемого поля даты и календаря выбора даты.
В исходном состоянии поле даты пустое.
Можно указать начальное значение даты, с помощью метода setValue компонента, или указав дату в конструкторе.
API DatePicker предоставляет несколько свойств и методов для изменения внешнего вида, и поведения компонента по умолчанию.
В частности, вы можете отображать номера недель, настраивать форматы дат, а также определять ячейки даты.
Вы можете включить или отключить отображение номеров недели в календаре с помощью метода setShowWeekNumbers класса DatePicker.
По умолчанию даты в поле даты отображаются в формате мм / дд / гггг.
Обычно вам не нужно изменять этот формат по умолчанию.
Тем не менее, метод setConverter класса DatePicker позволяет вам установить альтернативный формат даты, когда это необходимо.
Метод setPromptText позволяет установить подсказку в поле даты.
Вы также можете изменить внешний вид по умолчанию и установить поведение для любой ячейки или нескольких ячеек календаря с помощью метода setDayCellFactory.
С помощью метода setOnAction мы присоединяем к DatePicker обработчик выбора даты, в котором получаем выбранную пользователем дату и используем ее.
Окно FileChooser и DirectoryChooser
Компонент FileChooser обеспечивает для пользователя навигацию по файловой системе.
С помощью FileChooser можно открыть один или несколько файлов, и сохранить содержимое приложения в файл.
В отличие от других компонентов пользовательского интерфейса, класс FileChooser не относится к пакету scene.controls.
Класс FileChooser находится в пакете javafx.stage вместе с другими корневыми компонентами, такими как Stage, Window и Popup.
Класс FileChooser представляет окно выбора файлов локальной файловой системы и имеет свойства initialDirectory и title.
С помощью

